package com.zjcloud.jwgl.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zjcloud.common.annotation.Excel;
import com.zjcloud.common.core.domain.BaseEntity;

/**
 * 算法参数模板对象 ac_algorithm_parameter_template
 * 
 * @author zjcloud
 * @date 2024-12-19
 */
public class AcAlgorithmParameterTemplate extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 模板ID */
    private Long id;

    /** 模板编码 */
    @Excel(name = "模板编码")
    private String templateCode;

    /** 模板名称 */
    @Excel(name = "模板名称")
    private String templateName;

    /** 算法类型ID */
    @Excel(name = "算法类型ID")
    private Long algorithmTypeId;

    /** 目标场景(SMALL小规模 MEDIUM中等规模 LARGE大规模 CUSTOM自定义) */
    @Excel(name = "目标场景", readConverterExp = "SMALL=小规模,MEDIUM=中等规模,LARGE=大规模,CUSTOM=自定义")
    private String targetScenario;

    /** 参数值JSON */
    private String parameterValues;

    /** 性能预期JSON */
    private String performanceExpectation;

    /** 使用指南 */
    @Excel(name = "使用指南")
    private String usageGuidelines;

    /** 是否默认模板(1是 0否) */
    @Excel(name = "是否默认模板", readConverterExp = "0=否,1=是")
    private Integer isDefault;

    /** 是否公开(1是 0否) */
    @Excel(name = "是否公开", readConverterExp = "0=否,1=是")
    private Integer isPublic;

    /** 使用次数 */
    @Excel(name = "使用次数")
    private Integer usageCount;

    /** 成功率(%) */
    @Excel(name = "成功率(%)")
    private BigDecimal successRate;

    /** 平均评分 */
    @Excel(name = "平均评分")
    private BigDecimal averageScore;

    /** 算法类型信息 */
    private AcAlgorithmType algorithmType;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setTemplateCode(String templateCode) 
    {
        this.templateCode = templateCode;
    }

    public String getTemplateCode() 
    {
        return templateCode;
    }
    public void setTemplateName(String templateName) 
    {
        this.templateName = templateName;
    }

    public String getTemplateName() 
    {
        return templateName;
    }
    public void setAlgorithmTypeId(Long algorithmTypeId) 
    {
        this.algorithmTypeId = algorithmTypeId;
    }

    public Long getAlgorithmTypeId() 
    {
        return algorithmTypeId;
    }
    public void setTargetScenario(String targetScenario) 
    {
        this.targetScenario = targetScenario;
    }

    public String getTargetScenario() 
    {
        return targetScenario;
    }
    public void setParameterValues(String parameterValues) 
    {
        this.parameterValues = parameterValues;
    }

    public String getParameterValues() 
    {
        return parameterValues;
    }
    public void setPerformanceExpectation(String performanceExpectation) 
    {
        this.performanceExpectation = performanceExpectation;
    }

    public String getPerformanceExpectation() 
    {
        return performanceExpectation;
    }
    public void setUsageGuidelines(String usageGuidelines) 
    {
        this.usageGuidelines = usageGuidelines;
    }

    public String getUsageGuidelines() 
    {
        return usageGuidelines;
    }
    public void setIsDefault(Integer isDefault) 
    {
        this.isDefault = isDefault;
    }

    public Integer getIsDefault() 
    {
        return isDefault;
    }
    public void setIsPublic(Integer isPublic) 
    {
        this.isPublic = isPublic;
    }

    public Integer getIsPublic() 
    {
        return isPublic;
    }
    public void setUsageCount(Integer usageCount) 
    {
        this.usageCount = usageCount;
    }

    public Integer getUsageCount() 
    {
        return usageCount;
    }
    public void setSuccessRate(BigDecimal successRate) 
    {
        this.successRate = successRate;
    }

    public BigDecimal getSuccessRate() 
    {
        return successRate;
    }
    public void setAverageScore(BigDecimal averageScore) 
    {
        this.averageScore = averageScore;
    }

    public BigDecimal getAverageScore() 
    {
        return averageScore;
    }
    public void setAlgorithmType(AcAlgorithmType algorithmType) 
    {
        this.algorithmType = algorithmType;
    }

    public AcAlgorithmType getAlgorithmType() 
    {
        return algorithmType;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("templateCode", getTemplateCode())
            .append("templateName", getTemplateName())
            .append("algorithmTypeId", getAlgorithmTypeId())
            .append("targetScenario", getTargetScenario())
            .append("parameterValues", getParameterValues())
            .append("performanceExpectation", getPerformanceExpectation())
            .append("usageGuidelines", getUsageGuidelines())
            .append("isDefault", getIsDefault())
            .append("isPublic", getIsPublic())
            .append("usageCount", getUsageCount())
            .append("successRate", getSuccessRate())
            .append("averageScore", getAverageScore())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}